"""
演示数据容器中集合的使用
集合是无序的,不能支持下标索引,是允许修改的
"""

#定义集合
my_set = {"传智教育","itheima","itcast","黑马程序员","传智教育","itheima"}
my_set_empty = set()
print(f"my_set中的内容是: {my_set},类型是是 {type(my_set)}")
print(f"my_set_empty中的内容是: {my_set_empty},类型是是 {type(my_set_empty)}")

#添加新元素.add()
my_set.add("python")
my_set.add("itheima")
print(f"my_set中添加新元素的结果是: {my_set}")

#移除元素.remove
my_set.remove("黑马程序员")
print(f"my_set中移除黑马程序员后的结果是: {my_set}")

#随机抽取一个元素.pop
my_set = {'itcast', 'itheima', 'python', '传智教育'}
element = my_set.pop()
print(f"随机抽取一个元素结果是: {element}")

#清空集合.clear
my_set.clear()
print(f"清空集合my_set结果是: {my_set}")

#取2个集合的差集
set1 = {1,2,3}
set2 = {1,3,6}
set3 = set1.difference(set2)
print(f"取出差集的结果是{set3}")
print(f"取差集之后set1的内容: {set1}")
print((f"取差集之后set2的内容: {set2}"))

#消除两个集合的差集
set1 = {1,2,3}
set2 = {1,3,6}
set1.difference_update(set2)
print(f"消除两个集合的差集之后的set1的结果: {set1}")

#两个集合合并为一个
set1 = {1,2,3}
set2 = {1,3,6}
set3 = set1.union(set2)
print(f"两个集合合并结果: {set3}")
print(f"合并后集合1: {set1}")
print(f"合并后集合set2: {set2}")

#统计集合的元素数量
set1 = {1,2,3,4,5,1,2,3,4,5}
num = len(set1)
print(f"集合内的元素数量有: {num}个")

#集合的遍历
#集合不可用下标索引,不能用while循环来遍历
#集合可以用for循环来遍历
set1 = {1,2,3,4,5}
for element in set1:
    print(f"集合的元素有: {element}")

"""
信息去重:
    有如下列表对象:
    my_list = ['黑马程序员','传智播客','黑马程序员','传智播客','itheima','itcast','itheima','itcast','best']
"""

#定义一个列表
my_list = ['黑马程序员', '传智播客', '黑马程序员', '传智播客', 'itheima', 'itcast', 'itheima', 'itcast', 'best']
print(f"有列表: {my_list}")
#定义一个空集合
my_set =set()

for i in my_list:
    my_set.add(i)

print(f"得到合并去重的集合对象set: {my_set}")
